class Person:
    def __init__(self, name, age):
        # 纯粹私有的 类外不能访问
        self.__name = name
        # 保护的 类内可以访问  主要为子类服务  类外不推荐访问（强行使用也可以）
        self._age = age
        # 公开的  所有位置都可以访问
    @property
    def age(self):
        return self._age

    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self, name):
        if 2 <= len(name) <= 4:
            self.__name = name
        else:
            print(f"长度不合法")


p = Person("张三", 30)
p.name = "李四"
print(p.name)
print(p.age)
# 不推荐
print(p._age)


class SuperPerson(Person):
    def set_age(self, age):
        self._age = age

    def get_age(self):
        return self._age




sp = SuperPerson("绿巨人", 50)
sp.set_age(25)
print(sp.age, sp.get_age())




